Mapping Loop - Based Programs onto a Multithreaded Processor

نویسنده

  • Nikolaos Papaspyrou
چکیده

Saougkos Dimitrios. PhD Candidate, Computer Science Department, University of Ioannina, Greece. Graduation Month, Graduation Year. “Mapping Loop-Based Programs onto a Multithreaded Processor”. Thesis Supervisor: Manis George. This thesis offers some insight into the automatic parallelization of loops by introducing and describing a source-to-source parallelizing compiler developed from scratch called C2κTC/SL. Once basic notions and ideas on the field of automatic parallelization have been introduced, the SVP system is described in great detail. It is a novel proposal on multi-core architectures and is what C2κTC/SL targets as output. The SVP is a novel design for a multi-threaded processor that can be bundled together with an OS-on-chip as part of the chip's ISA (Instruction Set Architecture). Several of those SVP cores together form a microgrid. The programming paradigm followed by the microgrid is that of a family of threads. Each family executes independently and all the threads belonging in such a family run in parallel. A thread can create more adhoc families so a whole hierarchy of families can exist at any given time. Synchronization is achieved by a series of synchronizing channels that can carry information from one thread in the family to its neighbors. The whole system can revert back to complete sequential execution once all resources are taken. Two programming languages were created for the high level programming / abstraction layer of the SVP: κTC and SL. Both are explained later in the text however they both are extensions of the basic C language. They extend the language with a series of directives for the creation and execution of families of threads. The C2κTC/SL source-to-source compiler is described afterwards: its purpose is to take as input any legacy C code and transform it into a parallel SL program. Originally its output was the κTC language but with the advent of SL it changed to that, hence the name C to κTC / SL (C2κTC/SL). The compiler’s main target constructs are loops since a loop is where most of the execution time of an application takes place. Since SVP works with families of threads that resemble singledimentional loops, transforming any kind of loop into a meaningful construct for the SVP is an important step. For that reason, loops are divided into single-dimensional and multi-dimensional ones with each category requiring a different transformation method. Single-dimentional loops are further categorized by the number of the socalled loop carried dependencies that they have and are treated accordingly. Loops with no dependencies are just translated simply into parallel families. Loops with dependencies utilize the SVP’s synchronizing channels to transfer data from one thread to the next in a dataflow manner. This action alleviates the weight of each thread having to access the global memory for a particular piece of data since

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Communication-conscious Mapping of Regular Nested Loop Programs onto Massively Parallel Processor Arrays

Methods for an efficient mapping of algorithms to parallel architectures are of utmost importance because many stateof-the-art embedded digital systems deploy parallelism to increase their computational power. This paper deals with the mapping of loop programs onto processor arrays implemented in an FPGA or available as (reconfigurable) coarsegrained processor architectures. Most existing work ...

متن کامل

Task Mapping on Distributed Shared Memory Systems Using Hopfield Neural Network

In order to reduce the execution time of a parallel program, the tasks/threads of the program have to be carefully mapped onto the processors of a system. Most mapping methods used on current Multithreaded Distributed Shared Memory (DSM) systems only consider the workload balance. Due to the ignorance of the communication between tasks/threads, these methods may lead to such mappings have exces...

متن کامل

Output Serialization for FPGA-based and Coarse-grained Processor Arrays

This paper deals with the mapping of loop programs onto processor arrays either implemented in an FPGA or available as (reconfigurable) coarse-grained processor architectures. Usually the proportion of processing elements to I/O-interfaces is much higher whereby problems of data transportation and synchronization are arising. In this realm, we propose a systematic approach in order to feed-out ...

متن کامل

A Multithreaded Processor Architecture with Implicit Granularity Adaptation

We propose a multithreaded processor architecture for mapping a potentially unbounded number of software threads into a bounded number of hardware threads. Our architecture degrades a fork instruction gracefully into a function call when all hardware threads are in use, thereby adjusting thread granularity implicitly. This new architectural feature improves programmability by allowing programs ...

متن کامل

Analysis of communications and overhead reduction in multithreaded execution

In a multithreaded execution, each thread can be thought of as running on its own virtual processor, with several virtual processors multiplexed onto a single physical processor. At any given time, some of these virtual processors are either sending or waiting for messages. When the degree of multithreading is high, there is a high potential load on the interconnection network. It is important ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015